package com.freewater.library.lending.book.model;

import com.freewater.library.common.domain.Repository;

import java.util.List;
import java.util.Optional;

public interface BookInstanceRepository extends Repository {
    void save(BookInstance bookInstance);

    boolean exists(String qrCode);

    Optional<BookInstance> findById(String qrCode);

    List<BookInstance> findCanBeReservedBooks(String isbn);

    List<BookInstance> findReservingBooks();

    List<BookInstance> findCheckingOutBooksNotMarkedOverdue();

    void delete(BookInstance bookInstance);
}
